package satb.base.DAO;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import satb.base.Configuration;
import satb.model.Database;
      
/**Classe com manipulação de métodos de inserção e consulta de dados da classe Collar.
* @author Marcel Tolentino Pinheiro de Oliveira
*/
public class ConfigurationDAO 
{  
    //Atributos
    Database base;  
        
    public Configuration configurationSearch() throws Exception 
    {		
       Configuration config = null;
       base = new Database();
       System.out.println("Conectado e preparando a busca pelo dados de configuração.");
       Statement stmt = null;
       try 
       {
            stmt = base.getConnection().createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM Configuration");
            while (rs.next()) 
            {
            	config = new Configuration(rs.getInt("id"), rs.getString("google_earth_path"), rs.getString("kml_path"));
             
            }
       }
       catch (SQLException e) 
       {
            System.out.println(e.getMessage());
            return null;
       } 
       finally 
       {
            try 
            {
				stmt.close();
				base.closeConnection();
            } 
            catch (SQLException e) 
            {
            	System.out.println("Erro ao desconectar");
            }
	} 
        return config;			
    }
    
    
    public void configurationInsert(Configuration c) throws Exception
    {      
	base = new Database();
	// iniciando a conexao
	//conn = base.getConnection();
	System.out.println("Conectado e preparando a inserção de dados de configuração.");
	Statement stmt = null;
	try 
	{
		stmt = base.getConnection().createStatement();
		stmt.execute("INSERT INTO configuration (google_earth_path, kml_path)"
                   +" VALUES ('"+ c.getGoogleEarthPath() + "', '"+ c.getKmlPath() + "')");
        }
        catch (SQLException e) 
	{
		System.out.println(e.getMessage());
	} 
	finally 
	{
		try 
		{
			stmt.close();
			base.closeConnection();
		} 
		catch (SQLException e) 
		{
			System.out.println("Erro ao desconectar");
		}
	} 
    }
   
  
    /**Edita os dados de um collar no banco de dados.*/
    public void configurationUpdate(Configuration c) throws Exception
    {      
          base = new Database();
          // iniciando a conexao
          System.out.println("Conectado e preparando a atualização de dados de configuração.");
          Statement stmt = null;
          try 
          {
              stmt = base.getConnection().createStatement();
              stmt.execute("UPDATE configuration SET google_earth_path = '" + c.getGoogleEarthPath() + "', " +
              			   "kml_path = '" + c.getKmlPath() + "' WHERE id = '" + c.getId() + "'");

          }
          catch (SQLException e) 
          {
                  System.out.println(e.getMessage());
          } 
          finally 
          {
                  try 
                  {
                          stmt.close();
                          base.closeConnection();
                  } 
                  catch (SQLException e) 
                  {
                          System.out.println("Erro ao desconectar");
                  }
          } 
    }
      
}  